Computer systems such as Personal Computers and Mobile devices often take a significant amount of time to power up in order to make an application program available for a user. To overcome this, some computer systems provide power-save modes to allow computers to enter a hibernation state in order to conserve power rather than to turn completely off. Mobile devices (computers, PDAs and the like) preferably support instant on/off usage while providing long battery life. In order to accomplish this, implementations of these devices may use flash or a hard drive to provide data persistence but typically use standard memory technology for their system memory.
Flash memory backed mobile devices, such as an iPAQ™ from Hewlet Packard Development Company, can easily support instant on/off usage and long battery life but have a limited amount of persistent data storage. The flash memory is used solely for operating system files. All of the user's data resides in the system memory which must remain powered on in order to preserve its contents from being lost. Consequently, when the iPAQ is turned off electricity continues to power the system memory thus reducing the device's battery life.
Hard drive backed devices, such as the LifeDrive Mobile Manager™ from PALM®, can store large amounts of data and have a moderately long battery life but do not support instant on/off usage. These devices function like a typical laptop or tablet PC with a traditional system memory bank and hard drive. When these devices are powered off, they enter a hibernation state where the contents of the system memory are copied to a file on the hard disk and all of the electronics are turned off including the hard drive. When the device is powered on, the hard drive must spin up to its platter to normal operating RPM and then the file created during the hibernation is loaded in to main memory and the device's use continues. Instant on/off usage is not possible in this scenario because powering up the hard disk is a very slow operation when compared to the user pressing the power button.
US Patent Application No. 2005/0086551A1: (Wirasinghe et al.) “Memory optimization for a computer system having a hibernation mode” filed Aug. 18, 2003 and incorporated herein by reference, describes computer system that increases performance and reduces power consumption is described. Specifically, the system writes the contents of the system to a non-volatile memory cache before powering down. After repowering the system, the system initiates the load sequence from the memory cache. The Wirasinghe application specifies a non-volatile store to hold the system state, however the non-volatile store is created during the powering off event. Wirasinghe stipulates that state of the system must be stored to a primary non-volatile memory and then to a second non-volatile memory.
A computer system typically comprises a main memory and a secondary memory. Main memory or random access memory (RAM) refers to the physical system that is internal to the computer. The computer manipulates only the data that is in main memory. Therefore, programs that are executed and files that are accessed are typically copied into main memory. When the computer system is powered off, the data in main memory is typically not retained. The amount of main memory in a computer system determines how many programs can be executed at one time and how much data can be readily available to a program.
In contrast to main memory, the data in secondary memory is typically retained even after the system is powered off. Secondary memory allows large amounts of data to be stored. Examples of secondary memory include mass storage devices such as hard disks, floppy disks, optical disks, and tapes.
Computer systems set to a “hibernate” mode typically store the contents of main memory and other devices to secondary memory prior to powering down the system. After the system is powered back up, the computer is restored to the same state as the system was in prior to power down.
An example mobile system of the prior art uses a system depicted in FIG. 3. The operating system reads and writes to main memory and disk in the traditional fashion. When the device is powered off, the contents of main memory and the CPU state (“the snapshot”) is stored in a persistent storage device, typically the hard disk. Once the snapshot has been saved to the hard disk, the device can fully power off.
When the mobile device is powered on at a later time, the snapshot of main memory and CPU state must be restored before the device resumes normal operation. Steps necessary in restoring the state of the device include loading the contents of main memory in to memory exactly as it was prior to powering off and then restoring the saved state of the CPU.
There are drawbacks to this configuration. After the command to power off is made, the system consumes approximately the same amount of power as it does during normal operation. This is because the memory controller, disk controller, hard disk and nearly all other components of the mobile device must remain in operation while the contents of main memory and CPU state is stored to the hard disk. Once this task is complete, the system can power off completely. Additionally, the time required to save the contents of main memory to the hard disk is substantial from the perspective of the user. If the user turns the device off and then immediately turns it on, either accidentally or purposefully, the user must wait for the device to complete one save state and restore state cycle.